package com.wh.util;

import com.wh.bean.TestA;
import com.wh.bean.TestB;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

public class Test {

	private static final Logger LOGGER = LoggerFactory.getLogger(Test.class);

	public static void main(String[] args) {
		List<String> lists = new ArrayList<String>();
		lists.add("1");
		lists.add("5");
		lists.add("3");
		LOGGER.info("lists 排序前：" + lists.toString());
		//排序
		Collections.sort(lists);
		LOGGER.info("lists 排序后：" + lists.toString());

		List<TestA> listA = new ArrayList<TestA>();
		TestA a1 = new TestA();
		a1.setName("张大胖");
		a1.setOrder(1);
		listA.add(a1);
		TestA a5 = new TestA();
		a5.setName("王晓梅");
		a5.setOrder(5);
		listA.add(a5);
		TestA a3 = new TestA();
		a3.setName("刘晓彤");
		a3.setOrder(3);
		listA.add(a3);
		LOGGER.info("listA 排序前：" + listA.toString());
		Collections.sort(listA, new Comparator<TestA>() {
			@Override
			public int compare(TestA o1, TestA o2) {
				//升序
				return o1.getOrder().compareTo(o2.getOrder());
			}
		});
		LOGGER.info("listB 升序排序后：" +listA.toString());
		Collections.sort(listA, new Comparator<TestA>() {
			@Override
			public int compare(TestA o1, TestA o2) {
				//降序
				return o2.getOrder().compareTo(o1.getOrder());
			}
		});
		LOGGER.info("listB 降序排序后：" +listA.toString());


		//TestB实现compareTo
		List<TestB> listB = new ArrayList<TestB>();
		TestB b1 = new TestB();
		b1.setName("张大胖");
		b1.setOrder(1);
		listB.add(b1);
		TestB b5 = new TestB();
		b5.setName("王晓梅");
		b5.setOrder(5);
		listB.add(b5);
		TestB b3 = new TestB();
		b3.setName("刘晓彤");
		b3.setOrder(3);
		listB.add(b3);
		LOGGER.info("listB 排序前：" + listB.toString());
		Collections.sort(listB);
		LOGGER.info("listB 排序后：" + listB.toString());
	}

}
